<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>递归遍历数据</title>
		<script type="text/javascript">
			//递归-----在函数内部能够自己调用自己的函数,必须要有退出条件
			var data = [
				{
					id:1,
					name:'张三',
					goods:[
						{
							id:4,
							name:'赵六'
						},
						{
							id:5,
							name:'田七'
						}
					]
				},
				{
					id:2,
					name:'李四',
					goods:[
						{
							id:6,
							name:'赵八'
						},
						{
							id:7,
							name:'重九'
						}
					]
				},
				{
					id:3,
					name:'王五'
				}
			];
			
			//根据id查找对象
			function getObjByID(data,id) {
				var res = {};
				//先遍历对象
				data.forEach((item,index) => {
					if(item.id == id) {
						//退出递归的条件 --- 就是函数不再自己调用自己的条件
						res = item;
//						console.log(item)
					} else if(item.goods && item.goods.length) {
						//还没找到id相同的对象
						res = getObjByID(item.goods,id);
					}
				});
				return res;
			}
			var res = getObjByID(data,7);
			console.log(res)
		</script>
	</head>
	<body>
	</body>
</html>
